﻿//using System;
//using System.Collections.Generic;
//using System.Text;

//namespace DBUtil.FastEntity.Interface
//{
//    /// <summary>
//    /// 分组对象
//    /// </summary>
//    /// <typeparam name="TKey"></typeparam>
//    /// <typeparam name="TValue"></typeparam>
//    public interface IGroupAggregate<TKey, TValue> : IAggregateFunc where TValue : class
//    {
//        /// <summary>
//        /// 分组用的关键列
//        /// </summary>
//        TKey Key { set; get; }

//        /// <summary>
//        /// 分组内其他列
//        /// </summary>
//        TValue Value1 { set; get; }
//    }

//    /// <summary>
//    /// 聚合函数
//    /// </summary>
//    public interface IAggregateFunc
//    {
//        /// <summary>
//        /// 聚合函数: 最大值
//        /// </summary>
//        /// <param name="prop"></param>
//        /// <returns></returns>
//        T Max<T>(T prop) where T : struct;

//        /// <summary>
//        /// 聚合函数: 求和
//        /// </summary>
//        /// <param name="prop"></param>
//        /// <returns></returns>
//        T Sum<T>(T prop) where T : struct;

//        /// <summary>
//        /// 聚合函数: 最小值
//        /// </summary>
//        /// <param name="prop"></param>
//        /// <returns></returns>
//        T Min<T>(T prop) where T : struct;

//        /// <summary>
//        /// 聚合函数: 平均值
//        /// </summary>
//        /// <param name="prop"></param>
//        /// <returns></returns>
//        T Avg<T>(T prop) where T : struct;

//        /// <summary>
//        /// 聚合函数: 组内记录数
//        /// </summary>
//        /// <returns></returns>
//        int Count();
//    }
//}
